1. Field
The present disclosure relates to a system and a method for optimizing black point compensation parameters.
2. Description of Related Art
Generally, the black point compensation (BPC) function or algorithm is used for Red, Green and Blue (RGB) images to retain shadow details in images because many images contain colors that are darker than the darkest color a printer can make. Without black point compensation, details in these shadow regions may be lost. These details may contain information the viewer knows should be there (such as, for example, the folds of a dark coat, the strands of dark hair, etc.). Their absence when printed may be displeasing for a particular user.
The black point compensation may generally include an input L* (input image data) to an output L* (image data to be rendered by the printer) mapping function that is used in a color management look-up table (LUT). This input L* to output L* mapping function is a parameterized quadratic or parabolic function which is used to modify the L* values of all the node colors in the multi-dimensional look-up table. The black point compensation is used as a single-valued scalar function.
The black point compensation function that retains the details in dark colors (e.g., hairs) includes two parameters: offset and slope, m. These two parameters are used to control the effects (i.e., retain darkness vs. details) in the color images.
For example, the BPC algorithm is generally implemented using the following Equation (1) for the dark region:L*0=L*p+offset+m*L*i+n*L*i^2  (1)
where L*0 is the L* output by the BPC algorithm (i.e., image data to be rendered by the printer);
L*p is the minimum L* value that the printer can produce;
L*i are the L* values obtained from an image or a group of images to be rendered;
offset is the first tunable parameter of the BPC algorithm and can be used to adjust for the known statistics of the input image (for example, if L*i never goes to zero, it would waste dynamic range to map L*i=0 to L*p);
m is the second tunable BPC parameter of the BPC algorithm or slope; and
n is equal to the expression
            (              1        -        m            )        2        4    *          L      i      *      
which makes the L*0 curve become tangent to the identity curve (L*0=L*i) at the critical value L*c=(1−m)/(2* n).
For the light region (L*i greater than L*c), the identity curve is used.
The second tunable parameter of the BPC algorithm, m is the slope of the BPC parabolic function. This parameter controls the shape of the parabola joining the identity part of the BPC curve (i.e., when L*i=L*0).
FIGS. 1A-1D provide relationships between L*i and L0 for different slope and offset parameter values. Specifically, FIGS. 1A-1D show the effects of the offset parameter value and slope parameter value, m on the L*0 (i.e., L* output by the BPC algorithm). Each of the graphs shown in FIGS. 1A-1D illustrates L*i (i.e., the L* value that is input to the BPC algorithm) value on a horizontal x-axis. On a vertical y-axis, each of these graphs illustrates L*0 value. These curves were drawn for a printer with a L*p value of about 12.
The graph in FIG. 1A illustrates the relationship between L*i and L*0 for the offset parameter value of 0.43 and the slope parameter value of 0.13. The BPC curve in the graph in FIG. 1A has a quadratic behavior for the darker colors.
The graph in FIG. 1B illustrates the relationship between L*i and L*0 for the offset parameter value of 0.43 and the slope parameter value of 0.77. The BPC curve in the graph in FIG. 1B has a more linear behavior. By comparing the graphs of FIGS. 1A and 1B, it can be realized that, as the slope parameter value is increased while keeping the offset parameter value constant, the quadratic behavior of the BPC curve changes into a linear behavior. Also, by increasing the slope parameter values, finer details may be obtained.
The graph in FIG. 1C illustrates the relationship between L*i and L*0 for the offset parameter value of 2.6 and the slope parameter value of 0.13. The BPC curve in the graph in FIG. 1C has a quadratic behavior for the darker colors. By comparing the graphs of FIGS. 1A and 1C, it can be realized that the quadratic behavior of the BPC curves remains unchanged. However, an increase in the offset parameter value while the slope parameter value is maintained constant results in an increase in the darker L*0 values. For example, the minimum L*0 value for the graph in FIG. 1A is approximately 12, while the minimum L*0 value for the graph in FIG. 1C is approximately 14.6.
The graph in FIG. 1D illustrates the relationship between L*i and L*0 for the offset parameter value of 2.6 and the slope parameter value of 0.77. The BPC curve in the graph in FIG. 1D has a more linear behavior. By comparing the graphs of FIGS. 1A and 1D, it can be noticed that the quadratic behavior of the BPC curves becomes linear as the slope parameter value is increased. Also, the increase in the offset parameter value results in an increase in L*0 values. For example, the minimum L* value for the graph in FIG. 1A is approximately 12, while the minimum L* value for the graph in FIG. 1D is approximately 16.24.
Previous disclosures where BPC has been used have focused on parametric BPC algorithms for increasing shadow details and/or gloss reduction using look-up tables, for image dependent applications, for piece-wise multi-axis algorithms and for printing operations using multiple printing apparatus to output what is to be considered a single print job. None of these above-discussed approaches offers a process to optimize the BPC parameters so that the BPC parameters have to be manually tuned.
BPC algorithms are generally used to closely reproduce shadow details contained on images. Another approach introduces an online automation of the BPC parameters that seek to maximize shadow details, highlight details, and saturation of colors contained in images. That is, this approach offers an automatic workflow, which aims at minimizing the resources used during the optimization of BPC parameters. It focuses on balancing shadows, highlight details, and color attributes by optimizing two BPC parameters. This optimization process is applied online to either a particular image or a set of images whenever the customer demands to execute the optimization process.
One disadvantage of this approach is that International Color Consortium (ICC) profiles built with those parameters remain fixed. If new images are processed and the optimization is not invoked, this setting might not be optimal for the new images.
Another drawback is that this approach always assumes the need for optimizing all the individual cost functions (i.e., shadows details, highlight details, and color attributes or color saturation), which might not be the case for certain images. This results in an overhead in the optimization process that is not necessary. The process in this approach can be manually modified to select the individual costs, but there is a need for an approach in which selection of the individual cost functions is done automatically by analyzing the content of the images to be ripped.
Also, yet another drawback of this approach is the lack of an input parameter in the BPC algorithm that provides the option of increasing the saturation of colors without avoiding highlights clipping. Therefore, there is a need for a framework where this limitation is not present as well as a way to perform the optimization during image ripping.